home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
AMIGA
/
(A)Z
/
(A)Z9.ADF
/
Tilt
/
tilt.c
< prev
Wrap
C/C++ Source or Header
|
1987-03-08
|
2KB
|
130 lines
/* :ts=8 bk=0
* tilt.c: Something to make people giggle.
*
* by Leo L. Schwab 8702.23
*
* -=RJ Mical=- suggested that I should put my phone number in my PD stuff.
* (415) 456-6565
*/
#include <exec/types.h>
#include <intuition/intuition.h>
#define DEPTH 2
extern void *OpenLibrary(), *OpenWindow(), *OpenScreen();
struct NewScreen scrdef = {
0, 0, 0, 0, DEPTH, /* Size filled in later */
0, 1,
NULL, /* Modes filled in later */
CUSTOMSCREEN,
NULL,
(UBYTE *) "Dink!", /* Title filled in later */
NULL, NULL
};
struct NewWindow windef = {
0, 30, 100, 10,
-1, -1,
NULL,
WINDOWDRAG | WINDOWDEPTH | SMART_REFRESH | ACTIVATE,
NULL, NULL,
(UBYTE *) "Tilt",
NULL, NULL,
0, 0, 0, 0,
WBENCHSCREEN
};
char *msg = "\001\034\022T I L T !\0";
struct Screen *scr;
struct Window *win;
void *IntuitionBase, *GfxBase;
main ()
{
struct Screen *wb;
struct RastPort *rp;
struct BitMap *wbm, *mbm;
long x, y, n;
register int i;
openstuff ();
wb = win -> WScreen; /* Workbench Screen */
scrdef.LeftEdge = wb -> LeftEdge;
scrdef.TopEdge = wb -> TopEdge;
scrdef.Width = wb -> Width;
scrdef.Height = wb -> Height;
scrdef.ViewModes = wb -> ViewPort.Modes;
if (!(scr = OpenScreen (&scrdef)))
die ("Screen open failed.");
ScreenToBack (scr);
rp = &scr -> RastPort;
mbm = rp -> BitMap;
wbm = win -> WScreen -> RastPort.BitMap;
BltBitMap (wbm, 0L, 0L, mbm, 0L, 0L,
(long) scrdef.Width, (long) scrdef.Height,
0xc0L, 0xffL, NULL);
y = scrdef.Height-1;
for (i=0; i<40; i++) {
x = i << 4;
ScrollRaster (rp, 0L, i-20L, x, 0L, x+15L, y);
}
x = scrdef.Width-1;
n = scrdef.Height/50;
for (i=0; i<50; i++) {
y = i * n;
ScrollRaster (rp, 25L-i, 0L, 0L, y, x, y+n-1);
}
ScreenToFront (scr);
Delay (50L);
DisplayAlert (RECOVERY_ALERT, msg, 30L);
closestuff ();
}
openstuff ()
{
if (!(IntuitionBase = OpenLibrary ("intuition.library", 0L))) {
puts ("Intuition missing.");
exit (100);
}
if (!(GfxBase = OpenLibrary ("graphics.library", 0L))) {
puts ("Art shop closed.");
closestuff ();
exit (100);
}
if (!(win = OpenWindow (&windef))) {
puts ("Window painted shut.");
closestuff ();
exit (100);
}
}
die (str)
char *str;
{
puts (str);
closestuff ();
exit (100);
}
closestuff ()
{
if (scr) CloseScreen (scr);
if (win) CloseWindow (win);
if (GfxBase) CloseLibrary (GfxBase);
if (IntuitionBase) CloseLibrary (IntuitionBase);
}